# -*- coding: utf-8 -*-
# @Time        :2025/3/15 20:57
# @Author      :文刀水寿
# @File        : 43_爬虫_scrapy_链接提取器的使用.py
"""
 @Description :CrawlSpider
                            1.继承自scrapy.Spider
                            2.crawlSpider可以定义规则，再解析html内容时，可以根据链接规则提取出指定的链接
                                然后在向这些链接发送请求
                                所以，如果有需要跟进链接的需求，意思就是爬取了网页之后，需要提取链接再次
                                爬取，使用CrawlSpider是非常合适的
                            3.提取链接
                                链接提取器，在这里就可以写规则提取指定链接
                                scrapy.linkextractors.LinkExtractor(
                                    allow = ()          # 正则表达式，提取符合正则的链接
                                    deny = ()           # (不用)正则表达式， 不提取符合正则的链接
                                    allow_domains = ()  # (不用)允许的域名
                                    deny_domains = ()   # (不用) 不允许的域名
                                    restrict_xpath = () # xpath，提取符合xpath规则的链接
                                    restrict css = ()   # 提取符合选择器规则的链接
                            4. 模拟使用
                                正则用法：links1 = LinkExtractor(allow=r'list_23_\d+\.html')
                                xpath用法：links2 = LinkExtractor(restrict_xpath=r'//div[@class=-"x"]')
                                css用法： links3 = LinkExtractor(restrict_css='.x')
                            5.提取链接
                                link.extract_links(response)
                            6.注意：
                                1.callback只能写函数名字符串，callback='parse_item'
                                2.在基本的spider中，如果重新发送请求，那里的callback写的是：
                                    callback=self.parse_item follow=true 是否跟进，就是按照提取链接规则进行提取
"""
